import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import path from "path"; // 使用 ESM 语法导入 path
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  // publicDir: "static", // 设置静态资源目录
  publicPath: "./",
  outputDir: "dist", // 输出文件目录
  // build: {
  //   assetsDir: "static", // 设置构建输出目录中的静态资源目录为 static
  //   chunkSizeWarningLimit: 1500,
  //   rollupOptions: {
  //     output: {
  //       // 最小化拆分包
  //       manualChunks(id) {
  //         if (id.includes("node_modules")) {
  //           return id
  //             .toString()
  //             .split("node_modules/")[1]
  //             .split("/")[0]
  //             .toString();
  //         }
  //       },
  //       // 用于从入口点创建的块的打包输出格式[name]表示文件名,[hash]表示该文件内容hash值
  //       entryFileNames: "js/[name].[hash].js",
  //       // 用于命名代码拆分时创建的共享块的输出命名
  //       // 　　chunkFileNames: 'js/[name].[hash].js',
  //       // 用于输出静态资源的命名，[ext]表示文件扩展名
  //       assetFileNames: "[ext]/[name].[hash].[ext]",
  //       // 拆分js到模块文件夹
  //       chunkFileNames: (chunkInfo) => {
  //         const facadeModuleId = chunkInfo.facadeModuleId
  //           ? chunkInfo.facadeModuleId.split("/")
  //           : [];
  //         const fileName =
  //           facadeModuleId[facadeModuleId.length - 2] || "[name]";
  //         return `js/${fileName}/[name].[hash].js`;
  //       },
  //     },
  //   },
  // },
  // 配置路径别名
  build: {
    assetsDir: "static", // 设置构建输出目录中的静态资源目录为 static
    chunkSizeWarningLimit: 1500,
    rollupOptions: {
      output: {
        entryFileNames: "static/js/[name].[hash].js",
        assetFileNames: "static/[ext]/[name].[hash].[ext]",
        chunkFileNames: (chunkInfo) => {
          const facadeModuleId = chunkInfo.facadeModuleId
            ? chunkInfo.facadeModuleId.split("/")
            : [];
          const fileName =
            facadeModuleId[facadeModuleId.length - 2] || "[name]";
          return `static/js/${fileName}/[name].[hash].js`;
        },
        manualChunks(id) {
          if (id.includes("node_modules")) {
            return id
              .toString()
              .split("node_modules/")[1]
              .split("/")[0]
              .toString();
          }
        },
      },
    },
  },
  resolve: {
    alias: {
      "@": path.resolve(__dirname, "src"),
    },
  },

  // 配置服务器的代理设置
  server: {
    // 代理配置，用于重定向请求到其他服务器
    open: false, // 是否自动弹出浏览器页面
    proxy: {
      "/api": {
        target: "http://127.0.0.1:8000",
        changeOrigin: true,
        ws: true,
        secure: false,
        rewrite: (path) => {
          console.log(`Original Path: ${path}`);
          const newPath = path.replace(/^\/api/, "");
          console.log(`Rewritten Path: ${newPath}`);
          return newPath;
        },
      },
    },
  },
});
// 单独导出 publicPath 配置
// module.exports = {

// };
